package com.igeek.xml;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * TODO
 *
 * @author chemin
 * @since 2024/5/20
 *
 * 1.BeanFactory、ApplicationContext、ClassPathXmlApplicationContext、AnnotationConfigApplicationContext 关系
 * 2.IOC容器？？？  ---> 集合
 * 3.bean的生命周期交由IOC容器进行管理  ？？？
 */
public class MainTest {

    public static void main(String[] args) {
        //1.创建对象  主动new创建对象，且未管理其生命周期
        User user = new User();
        //2.使用对象
        user.setName("小美");
        user.setAge(20);
        System.out.println("user = "+user);

        System.out.println("------- Spring IOC 反转控制 -------");

        //1.获取IOC容器  ApplicationContext
        ApplicationContext ac = new ClassPathXmlApplicationContext("springbean.xml");
        //2.从容器中获取bean实例    由IOC容器自动注入实例bean进行使用，且bean的生命周期交由IOC容器进行管理
        User u = ac.getBean("u", User.class);
        //3.使用bean实例
        //u.setName("小花");
        System.out.printf("u = "+u);
    }

}
